#ifndef _BTREE_H_
#define _BTREE_H_
#include"node.hpp"
using node = struct node;

class Tree
{
public:
    Tree();
    Tree(int root_val);
    ~Tree();

    const node* getRoot();

    bool add(int val);
    bool del(int val);

    void preOrder_r(const node* root);
    void inOrder_r(const node* root);
    void postOrder_r(const node* root);

    void preOrder();
    void inOrder();
    void postOrder();
    void levelOrder();

private:
    node* root;
};


#endif // !_BTREE_H_
